/*
 * cache.h
 *
 *  Created on: 25/11/2011
 *      Author: utn_so
 */

#include <stdint.h>
#include <pthread.h>

#ifndef CACHE_H_
#define CACHE_H_

struct nodoDeCache{
		uint32_t numeroBloque;
		char * contenido;
		struct nodoDeCache *siguiente;

};typedef struct nodoDeCache nodoDeCache;

struct colaDeCache{

	struct nodoDeCache * nodoInicial;
	struct nodoDeCache * nodoFinal;
	uint32_t cantidadDeNodosEnLaCola;
	uint32_t cantidadDeNodosPosibles;
	pthread_mutex_t mutexCacheArchivo;
};typedef struct colaDeCache colaDeCache;

struct colaDeCache * iniciarCache();

struct nodoDeCache * agregarALaCache(struct nodoDeCache * nodoParaAgregar, struct colaDeCache * cacheParaAgregar );

struct nodoDeCache * buscarEnCache(uint32_t numeroBloque, struct colaDeCache * cacheParaBuscar);

uint32_t borrarCache(const char *path);

#endif /* CACHE_H_ */
